Full source code giải đố hình đơn giản
16.640 lượt xem;
- LoadPuzzleGame.cs
- Puzzle Game Controller /
- Scripts /
- Assets /
- project /
1 using System.Collections;
2 using System.Collections.Generic;
3 using UnityEngine;
4
5 public class LoadPuzzleGame : MonoBehaviour {
6
7 [SerializeField]
8 private PuzzleGameManager puzzleGameManager;
9
10 [SerializeField]
11 private LevelLocker levelLocker;
12
13 [SerializeField]
14 private LayoutPuzzleButtons layoutPuzzleButtons;
15
16 [SerializeField]
17 private GameObject puzzleLevelSelectPanel;
18
19 [SerializeField]
20 private Animator puzzleLevelSelectAnim;
21
22 [SerializeField]
23 private GameObject puzzleGamePanel1, puzzleGamePanel2, puzzleGamePanel3, puzzleGamePanel4, puzzleGamePanel5;
24
25 [SerializeField]
26 private Animator puzzleGamePanelAnim1, puzzleGamePanelAnim2, puzzleGamePanelAnim3, puzzleGamePanelAnim4, puzzleGamePanelAnim5;
27
28 private int puzzleLevel;
29
30 private string selectedPuzzle;
31
32 private List<Animator> anims;
33
34 public void LoadPuzzle (int level, string puzzle)
35 {
36 this.puzzleLevel = level;
37 this.selectedPuzzle = puzzle;
38
39 layoutPuzzleButtons.LayoutButtons(level, selectedPuzzle);
40
41 switch (puzzleLevel)
42 {
43 case 0:
44 StartCoroutine(LoadPuzzleLevelGamePanel(puzzleGamePanel1, puzzleGamePanelAnim1));
45 break;
46
47 case 1:
48 StartCoroutine(LoadPuzzleLevelGamePanel(puzzleGamePanel2, puzzleGamePanelAnim2));
49 break;
50
51 case 2:
52 StartCoroutine(LoadPuzzleLevelGamePanel(puzzleGamePanel3, puzzleGamePanelAnim3));
53 break;
54
55 case 3:
56 StartCoroutine(LoadPuzzleLevelGamePanel(puzzleGamePanel4, puzzleGamePanelAnim4));
57 break;
58
59 case 4:
60 StartCoroutine(LoadPuzzleLevelGamePanel(puzzleGamePanel5, puzzleGamePanelAnim5));
61 break;
62
63 }
64 }
65
66 public void BackToPuzzleLevelSelectMenu()
67 {
68 anims = puzzleGameManager.ResetGameplay();
69
70 levelLocker.CheckWhichLevelsAreUnlocked(selectedPuzzle);
71
72 switch (puzzleLevel)
73 {
74 case 0:
75 StartCoroutine(LoadPuzzleLevelSelectMenu(puzzleGamePanel1, puzzleGamePanelAnim1));
76 break;
77
78 case 1:
79 StartCoroutine(LoadPuzzleLevelSelectMenu(puzzleGamePanel2, puzzleGamePanelAnim2));
80 break;
81
82 case 2:
83 StartCoroutine(LoadPuzzleLevelSelectMenu(puzzleGamePanel3, puzzleGamePanelAnim3));
84 break;
85
86 case 3:
87 StartCoroutine(LoadPuzzleLevelSelectMenu(puzzleGamePanel4, puzzleGamePanelAnim4));
88 break;
89
90 case 4:
91 StartCoroutine(LoadPuzzleLevelSelectMenu(puzzleGamePanel5, puzzleGamePanelAnim5));
92 break;
93
94 }
95 }
96
97 IEnumerator LoadPuzzleLevelSelectMenu(GameObject puzzleGamePanel, Animator puzzleGamePanelAnim)
98 {
99 puzzleLevelSelectPanel.SetActive(true);
100 puzzleLevelSelectAnim.Play("Slide_In");
101 puzzleGamePanelAnim.Play("SlideOut");
102
103 yield return new WaitForSeconds(1f);
104
105 foreach(Animator anim in anims)
106 {
107 anim.Play("Idle");
108 }
109
110 yield return new WaitForSeconds(.5f);
111
112 puzzleGamePanel.SetActive(false);
113
114 }
115
116 IEnumerator LoadPuzzleLevelGamePanel(GameObject puzzleGamePanel, Animator puzzleGamePanelAnim)
117 {
118 puzzleGamePanel.SetActive(true);
119 puzzleGamePanelAnim.Play("SlideIn");
120 puzzleLevelSelectAnim.Play("Slide_Out");
121 yield return new WaitForSeconds(1f);
122 puzzleLevelSelectPanel.SetActive(false);
123 }
124
125
126
127
128
129
130 }
2 using System.Collections.Generic;
3 using UnityEngine;
4
5 public class LoadPuzzleGame : MonoBehaviour {
6
7 [SerializeField]
8 private PuzzleGameManager puzzleGameManager;
9
10 [SerializeField]
11 private LevelLocker levelLocker;
12
13 [SerializeField]
14 private LayoutPuzzleButtons layoutPuzzleButtons;
15
16 [SerializeField]
17 private GameObject puzzleLevelSelectPanel;
18
19 [SerializeField]
20 private Animator puzzleLevelSelectAnim;
21
22 [SerializeField]
23 private GameObject puzzleGamePanel1, puzzleGamePanel2, puzzleGamePanel3, puzzleGamePanel4, puzzleGamePanel5;
24
25 [SerializeField]
26 private Animator puzzleGamePanelAnim1, puzzleGamePanelAnim2, puzzleGamePanelAnim3, puzzleGamePanelAnim4, puzzleGamePanelAnim5;
27
28 private int puzzleLevel;
29
30 private string selectedPuzzle;
31
32 private List<Animator> anims;
33
34 public void LoadPuzzle (int level, string puzzle)
35 {
36 this.puzzleLevel = level;
37 this.selectedPuzzle = puzzle;
38
39 layoutPuzzleButtons.LayoutButtons(level, selectedPuzzle);
40
41 switch (puzzleLevel)
42 {
43 case 0:
44 StartCoroutine(LoadPuzzleLevelGamePanel(puzzleGamePanel1, puzzleGamePanelAnim1));
45 break;
46
47 case 1:
48 StartCoroutine(LoadPuzzleLevelGamePanel(puzzleGamePanel2, puzzleGamePanelAnim2));
49 break;
50
51 case 2:
52 StartCoroutine(LoadPuzzleLevelGamePanel(puzzleGamePanel3, puzzleGamePanelAnim3));
53 break;
54
55 case 3:
56 StartCoroutine(LoadPuzzleLevelGamePanel(puzzleGamePanel4, puzzleGamePanelAnim4));
57 break;
58
59 case 4:
60 StartCoroutine(LoadPuzzleLevelGamePanel(puzzleGamePanel5, puzzleGamePanelAnim5));
61 break;
62
63 }
64 }
65
66 public void BackToPuzzleLevelSelectMenu()
67 {
68 anims = puzzleGameManager.ResetGameplay();
69
70 levelLocker.CheckWhichLevelsAreUnlocked(selectedPuzzle);
71
72 switch (puzzleLevel)
73 {
74 case 0:
75 StartCoroutine(LoadPuzzleLevelSelectMenu(puzzleGamePanel1, puzzleGamePanelAnim1));
76 break;
77
78 case 1:
79 StartCoroutine(LoadPuzzleLevelSelectMenu(puzzleGamePanel2, puzzleGamePanelAnim2));
80 break;
81
82 case 2:
83 StartCoroutine(LoadPuzzleLevelSelectMenu(puzzleGamePanel3, puzzleGamePanelAnim3));
84 break;
85
86 case 3:
87 StartCoroutine(LoadPuzzleLevelSelectMenu(puzzleGamePanel4, puzzleGamePanelAnim4));
88 break;
89
90 case 4:
91 StartCoroutine(LoadPuzzleLevelSelectMenu(puzzleGamePanel5, puzzleGamePanelAnim5));
92 break;
93
94 }
95 }
96
97 IEnumerator LoadPuzzleLevelSelectMenu(GameObject puzzleGamePanel, Animator puzzleGamePanelAnim)
98 {
99 puzzleLevelSelectPanel.SetActive(true);
100 puzzleLevelSelectAnim.Play("Slide_In");
101 puzzleGamePanelAnim.Play("SlideOut");
102
103 yield return new WaitForSeconds(1f);
104
105 foreach(Animator anim in anims)
106 {
107 anim.Play("Idle");
108 }
109
110 yield return new WaitForSeconds(.5f);
111
112 puzzleGamePanel.SetActive(false);
113
114 }
115
116 IEnumerator LoadPuzzleLevelGamePanel(GameObject puzzleGamePanel, Animator puzzleGamePanelAnim)
117 {
118 puzzleGamePanel.SetActive(true);
119 puzzleGamePanelAnim.Play("SlideIn");
120 puzzleLevelSelectAnim.Play("Slide_Out");
121 yield return new WaitForSeconds(1f);
122 puzzleLevelSelectPanel.SetActive(false);
123 }
124
125
126
127
128
129
130 }